
package dk.kapetanovic.jaft.log;


import java.util.List;

import dk.kapetanovic.jaft.action.Action;
import dk.kapetanovic.jaft.exception.InconsistentStateException;
import dk.kapetanovic.jaft.exception.TransactionException;
	/**
	 * TODO change code elminate rollback in Journal, so everythinh goes through
	 * a new method: void undo() throws InconsistentStateException, TransactionException. And
	 * introduce some method to get the cleanup exceptions.
	 * 
	 * @author mirza
	 *
	 */
public interface Journal {
	Action undo() throws TransactionException, InconsistentStateException;
	//void undoAction(Action action) throws InconsistentStateException;
	//List<Exception> commit() throws TransactionException;
	List<Action> commit() throws TransactionException;
	void addAction(Action action) throws TransactionException;
	int size();
	void close() throws TransactionException;
	//List<Action> getActions();
}